const express = require('express')//导入express框架
const app = express()//创建express实例

const cors = require('cors')//引入cors中间件
const bodyParser = require('body-parser')//引入body-parser可以将请求体解析为 JSON、URL 编码格式或其他数据格式
const Joi = require('joi')
const loginRouter = require('./router/login')//引入登录注册模块路由
const typhoonRouter = require('./router/typhoon')//引入台风模块路由




app.use(cors())//全局挂载

app.use(bodyParser.urlencoded({ extended: false }))//当extended为false时,值为数组或者字符串;当为true时,值可以为任意类型  // parse application/x-www-form-urlencoded
app.use(bodyParser.json())//处理JSON数据的方法

app.use((req, res, next) => {
  //status=0为成功,=1为失败,默认为1,方便处理失败的情况
  res.ce = (err, status) => {
    res.send({
      status: 1,
      //判断这个error是错误对象还是字符串
      message: err instanceof Error ? err.message : err
    })
  }
  next()
})


app.use((err, req, res, next) => {
  if (err instanceof Joi.ValidationError) {
    res.send({
      status: 1,
      message: '输入的数据不符合验证规则'
    })
  }
})



//api路径
app.use('/login', loginRouter)
app.use('/typhoon', typhoonRouter)

app.listen(82, () => {
  console.log('http://localhost:82')
})//绑定和侦听指定的主机和端口